// 使用use引入依赖库，std是rust的标准库，env,fs,io是标准库中的模块。
use std::env;
use std::io;

// 自定义模块
mod utils;
mod d01_grep;
mod cpt_01_base;
mod cpt_02_thread;

// 编译项目（生成exe可执行文件）：cargo run -- main src/main.rs
// 1. fn用来定义一个函数，main函数是整个程序的入口
// 2. -> 表示返回类型
// 3. io::Result<()> 表示函数返回一个io::Result 类型，Result是一个标准的结果类型，其中()表示元组，可以返回多个数据，而这里表示没有返回值。
// Result的源码： pub type Result<T> = std::result::Result<T, std::io::Error>;
//    std::result::Result是一个枚举 pub enum Result<T, E> { Ok(T), Err(E), }
fn main() -> io::Result<()> {
    let home_dir = env::home_dir().unwrap();
    println!("打印环境变量：{:?}", home_dir);

    utils::hello::say_hello();

    let grep = d01_grep::grep::grep();
    if let Err(e) = grep {
        eprintln!("grep错误：{:?}", e);
    }


    
    println!("程序结束");


    Ok(())
}
